/**
 * 性能分析 导出结果集
 */

// "WebviewInfo" :  //5.7版本添加
// [
//   [
//     "pvid", //1.页面id
//     "url",  //2.requestUrl请求地址;
//     "wn",   //3.webviewName webview名称;
//     "wpt",  //4.WebviewPerformanceTiming;
//     "wr",   //5.WebviewResource;
//     "we",   //6.WebviewError（嵌套在WebviewInfo里面使用时，pvid和url用WebviewInfo里面的）
//     "jen"   //7.js error number = we里面的错误数相加
//   ],
//   ["1","2","3",{"4":"4"},[[5]],[[6]],7]
// ],
// "WebviewResource" :  // 数据结构
//   [
//     [1,"2","3",4,5,6,7,8,9,10,11,12,13,14,15,16]
//   ],
// "WebviewError" : // 数据结构
// [
//   ["1","2","3","4",5,6,"7",8,"9",10,11]
// ],
// "WebviewAjax" :  //页面ajax请求 数据结构
//   [
//     {}
//   ],

const result = {
    // WebviewInfo 子对象
    WebviewInfo:{
       PD:{},//WebviewPerformanceTiming
       RD:[],//WebviewResource
       ED:[],//WebviewError
    },
    WebviewPerformanceTiming:  //5.7版本添加；单位：无符号long 型的毫秒数；备注了相对值的都是这么计算出来的：相对值 = 该指标的时间戳 - 开始时间
    {
        "navigationStart" : "ns",   //navigationStart;【时间戳】;表征了从同一个浏览器上下文的上一个文档卸载(unload)结束时的UNIX时间戳。如果没有上一个文档，这个值会和PerformanceTiming.fetchStart相同。
        "unloadEventStart": "ues",   //unloadEventStart;【相对值】;表征了unload事件抛出时的UNIX时间戳。如果没有上一个文档，or if the previous document, or one of the needed redirects, is not of the same origin, 这个值会返回0.
        "unloadEventEnd": "uee",   //unloadEventEnd;【相对值】;表征了unload事件处理完成时的UNIX时间戳。如果没有上一个文档，or if the previous document, or one of the needed redirects, is not of the same origin, 这个值会返回0.
        "redirectStart": "rds",   //redirectStart;【相对值】;表征了第一个HTTP重定向开始时的UNIX时间戳。如果没有重定向，或者重定向中的一个不同源，这个值会返回0.
        "redirectEnd": "rde",   //redirectEnd;【相对值】;表征了最后一个HTTP重定向完成时（也就是说是HTTP响应的最后一个比特直接被收到的时间）的UNIX时间戳。如果没有重定向，或者重定向中的一个不同源，这个值会返回0.
        "fetchStart": "fs",    //fetchStart;【相对值】;表征了浏览器准备好使用HTTP请求来获取(fetch)文档的UNIX时间戳。这个时间点会在检查任何应用缓存之前。
        "domainLookupStart": "dls",   //domainLookupStart;【相对值】;表征了域名查询开始的UNIX时间戳。如果使用了持续连接(persistent connection)，或者这个信息存储到了缓存或者本地资源上，这个值将和 PerformanceTiming.fetchStart一致。
        "domainLookupEnd": "dle",   //domainLookupEnd;【相对值】;表征了域名查询结束的UNIX时间戳。如果使用了持续连接(persistent connection)，或者这个信息存储到了缓存或者本地资源上，这个值将和 PerformanceTiming.fetchStart一致。
        "connectStart": "cs",    //connectStart;【相对值】;返回HTTP请求开始向服务器发送时的Unix毫秒时间戳。如果使用持久连接（persistent connection），则返回值等同于fetchStart属性的值。
        "secureConnectionStart": "scs",  //secureConnectionStart;【相对值】;返回浏览器与服务器开始安全链接的握手时的Unix毫秒时间戳。如果当前网页不要求安全连接，则返回0。
        "connectEnd": "ce",    //connectEnd;【相对值】;返回浏览器与服务器之间的连接建立时的Unix毫秒时间戳。如果建立的是持久连接，则返回值等同于fetchStart属性的值。连接建立指的是所有握手和认证过程全部结束。
        "requestStart": "reqs",  //requestStart;【相对值】;返回浏览器向服务器发出HTTP请求时（或开始读取本地缓存时）的Unix毫秒时间戳。
        "responseStart": "rsps",  //responseStart;【相对值】;返回浏览器从服务器收到（或从本地缓存读取）第一个字节时的Unix毫秒时间戳。如果传输层在开始请求之后失败并且连接被重开，该属性将会被数制成新的请求的相对应的发起时间。
        "responseEnd": "rspe",  //responseEnd;【相对值】;返回浏览器从服务器收到（或从本地缓存读取，或从本地资源读取）最后一个字节时（如果在此之前HTTP连接已经关闭，则返回关闭时）的Unix毫秒时间戳。
        "domLoading": "dl",    //domLoading;【相对值】;返回当前网页DOM结构开始解析时（即Document.readyState属性变为“loading”、相应的 readystatechange事件触发时）的Unix毫秒时间戳。
        "domInteractive": "di",    //domInteractive;【相对值】;返回当前网页DOM结构结束解析、开始加载内嵌资源时（即Document.readyState属性变为“interactive”、相应的readystatechange事件触发时）的Unix毫秒时间戳。
        "domContentLoadedEventStart": "dcles", //domContentLoadedEventStart;【相对值】;返回当解析器发送DOMContentLoaded 事件，即所有需要被执行的脚本已经被解析时的Unix毫秒时间戳。
        "domContentLoadedEventStart": "dclee", //c;【相对值】;返回当所有需要立即执行的脚本已经被执行（不论执行顺序）时的Unix毫秒时间戳。
        "domComplete": "dc",    //domComplete;【相对值】;返回当前文档解析完成，即Document.readyState 变为 'complete'且相对应的readystatechange 被触发时的Unix毫秒时间戳。
        "loadEventStart": "les",   //loadEventStart;【相对值】;返回该文档下，load事件被发送时的Unix毫秒时间戳。如果这个事件还未被发送，它的值将会是0。
        "loadEventEnd": "lee"    //loadEventEnd;【相对值】;返回当load事件结束，即加载事件完成时的Unix毫秒时间戳。如果这个事件还未被发送，或者尚未完成，它的值将会是0.
    },
    // WebviewResource 子对象
    WebviewResource:  //页面资源，5.7版本添加;时间指标都是时间戳
    {
        "startTime":"st",    //1.startTime
        "initiatorType":"rt",    //2.resourceType 资源类型， 发起请求的源
        "name":"name",  //3.资源名称
        "duration":"dura", //4.duration 加载时间
        "fetchStart":"fs" ,   //5.fetchStart 为浏览器已经准备好去使用HTTP请求抓取文档之时的 Unix毫秒时间戳。这一时刻在检查应用的缓存之前。
        "domainLookupStart":"dls" ,  //6.domainLookupStart 为域名开始解析之时的 Unix毫秒时间戳
        "domainLookupEnd":"dle" ,  //7.domainLookupEnd 为解析域名结束时的 Unix毫秒时间戳
        "connectStart":"cs" ,   //8.connectStart 请求连接被发送到网络之时的Unix毫秒时间戳。如果传输层报告错误并且连接的建立重新开始，则把最后建立连接的开始时间作为该值。
        "connectEnd":"ce" ,   //9.connectEnd 它以毫秒为单位，代表了网络链接建立的时间节点。如果传输层报告了错误或者链接又被重新建立，则采用最后一次链接建立的时间。如果链接是长久的，那么这个值等同于PerformanceTiming.fetchStart。
        "secureConnectionStart":"scs" ,  //10.secureConnectionStart 为安全连接握手开始的时刻的 Unix毫秒时间戳
        "requestStart":"reqs",  //11.requestStart 为浏览器发送从服务器或者缓存获取实际文档的请求之时的 Unix毫秒时间戳
        "responseStart":"rsps",  //12.responseStart 为浏览器从服务器、缓存或者本地资源接收到响应的第一个字节之时的 Unix毫秒时间戳。
        "responseEnd":"rspe",  //13.responseEnd 为浏览器从服务器、缓存或者本地资源接收响应的最后一个字节或者连接被关闭之时的 Unix毫秒时间戳。
        "transferSize":"ts",    //14.transferSize the size (in octets) of the fetched resource. The size includes the response header fields plus the response payload body
        "encodedBodySize":"ebs",   //15.encodedBodySize the size (in octets) received from the fetch (HTTP or cache), of the payload body, before removing any applied content-codings.
        "decodedBodySize":"dbs"    //16.decodedBodySize the size (in octets) received from the fetch (HTTP or cache) of the message body, after removing any applied content-codings.
    },
    // WebviewError 子对象
    WebviewError:{
        "pvid":"", //1.WebviewError单独上报时有值
        "url":"",  //2.WebviewError单独上报时有值
        "name":"", //3.errorName
        "msg":"",  //4.errorMessage
        "line":0, //5.errorLine
        "col":0,  //6.errorColumn
        "file":"", //7.fileName
        "en":0,   //8.errorNumber
        "sta":"",  //9.stack
        "flag":"", //10.flag(标识，暂无实际用途)
        "et":""    //11.errorTime错误发生时间
    },
    // WebviewAjax子对象
    WebviewAjax:  //页面ajax请求
    {
      "pid": "i",  //page visit id: 随机md5，唯一标识
      "purl": "p",   //url: document.URL当前ajax所属的页面的url
      "url" : "u",   //URL: ajax的请求地址
      "method" : "m",  //method：请求方式 post or get
      "status" : "st",    //status code： 状态码
      "start" : "s",    //start: ajax请求开始时间，时间戳，Unix毫秒时间戳, long
      "requestSize" : "req",     //request length： 请求长度，integer，单位：字符串的长度
      "responseSize" : "res",     //response length： 响应长度，integer， 单位：字符串的长度
      "end" : "end",    //end : ajax请求完成时间，相对请求开始时间，integer， 单位:毫秒
      "fb" : "fb",     //first byte : ajax 首字完成时间，相对请求开始时间 Time to first byte (TTFB)，integer，单位:毫秒
      "duration" : "d",    //duration: ajax 响应下载完成时间，相对请求开始时间，integer，单位:毫秒
      "cb" : "cb",   //callback time: 回调函数执行时间（回调函数结束时间减去回调函数开始时间），integer，单位:毫秒
      "responseHeaders" : "h",  //responsehead: 响应头
      "body" : "a", //arguments： 请求参数
      "oe" : "oe",   //该请求是否是onload事件完成前发生 1:是 0:不是
      "domainLookupStart":"ds",
      "domainLookupEnd":"de",
      "connectStart":"cs",
      "connectEnd":"ce",
      "secureConnectionStart":"ssl"
    },

};

export default result;